package com.bjyada.ncp.op.rule;

/**
 * 支付接口
 * 
 * @author 涛
 * 
 */
public interface IPayment {

	/**
	 * 消费
	 * 
	 * @param cardBinInfo
	 *            卡BIN信息
	 * @param contractInfo
	 *            签约信息
	 * @param verificationInfo
	 *            验证信息
	 * @param merId
	 *            商户号
	 * @param orderId
	 *            订单号
	 * @param amt
	 *            消费金额
	 * @param smsAuthCode
	 *            短信验证码
	 */
	public TxnResult pay(CardInfo cardInfo, VerificationInfo verificationInfo,
			String merId, String orderId, String amt);

	/**
	 * 撤销
	 * 
	 * @param merId
	 *            商户号
	 * @param orderId
	 *            订单号
	 */
	public TxnResult revoke(String merId, String orderId);

	/**
	 * 退货
	 * 
	 * @param merId
	 *            商户号
	 * @param orderId
	 *            订单号
	 * @param amt
	 *            金额，单位：分
	 */
	public TxnResult refund(String merId, String orderId, String amt);

	/**
	 * 查询交易状态
	 * 
	 * @param merId
	 *            商户号
	 * @param orderId
	 *            订单号
	 */
	public TxnResult queryTxnStatus(String merId, String orderId);
}
